#ifndef GAMEDIALOGMANAGER_H
#define GAMEDIALOGMANAGER_H
#include <QGraphicsObject>
#include "gs.h"

using namespace gs;

namespace gs
{
class GameDialogManager : public QGraphicsObject
{
    Q_OBJECT
public:
    GameDialogManager(GameWindow*);
    GameWindow* getGameWindow();
    QRectF boundingRect() const;
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    int askMessageBox( QString );
    int askBottomLessBox();
    Player* askPlayerRequestBox(bool alive);
    GhostSlot* askSlotRequestDialog();
    VillageTile* askTileDialog();
    GSColor askTaoDialog();
    QList<GameDialogDice*> askDiceRoll(int);

    GameSlotRequestDialog* getSlotRequestDialog(){return slotRequest;}
    GameTileRequestDialog* getTileRequestDialog(){return tileRequest;}

    //shop dialog
    int askTestShop();

    //battle dialog
    int askBattleDialog(GhostSlot*);

protected:
    GameWindow* _w;
    GameDialogBg* _fore;
    GameMessageBox* messageBox;
    GameSlotRequestDialog* slotRequest;
    GamePlayerRequestDialog* playerRequest;
    BottomLessDialog* BottomLessBox;
    ShopDialog* herbalistShop;
    ShopDialog* sorcererShop;
    ShopDialog* pavilionShop;
    ShopDialog* cemeteryShop;
    BattleDialog* battleDialog;
    GameTileRequestDialog* tileRequest;

    GameTaoRequestDialog* taoRequest;
    GameDiceRequestDialog* diceRequest;
};
}
#endif // GAMEDIALOGMANAGER_H
